package bombita.modelo.Obstaculos;

import org.jdom2.Element;

import bombita.modelo.CosaDelMapaNoSincronica;
import bombita.modelo.Interactuador;
import bombita.modelo.Personajes.Personaje;

/*Los Obstaculos poseen una resistencia y pueden ser destruidos.
  Si un personaje tratara de moverse a una posición "borde" se
  levanta NoPasarException.*/
public abstract class Obstaculo extends CosaDelMapaNoSincronica
{
	protected int resistencia;
	
	public void recibirDano(int dano)
	{
		this.resistencia = this.resistencia - dano;
		if(resistencia <= 0)
		{
			this.destruir();
		}
	}
	
	public void interactuarCon(Interactuador unaCosa) {
		unaCosa.interactuarConObstaculo(this);
	}

	public void interactuarConPersonaje(Personaje unaCosa) throws NoPasarException {
		throw new NoPasarException();
	}

	public Element serializar() {
		Element nodo = super.serializar();
		nodo.setAttribute("hp", Integer.toString(resistencia));
		return nodo;
	}
	
	public void aplicarSerializado(Element nodo) throws Exception
	{
		super.aplicarSerializado(nodo);
		resistencia = nodo.getAttribute("hp").getIntValue();
	}
}
